An ADT which consists of an abstract data structure and operations. Only the operations are viewable from the outside and define the interface.